﻿// 5386. 进水出水问题.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5389/

某泳池装有 n
 个水管，编号 1∼n
。

每个水管都是既可用于进水，也可用于出水。

其中，第 i
 个水管工作时的单位时间进水或出水量为 ai
。

我们希望泳池保持水循环的同时，还能够保持水位不变。

为此，我们需要制定一种水管工作方案。

具体要求为：

选择若干个（至少一个）连续编号的水管作为工作水管（未选择的水管不工作）。
每个工作水管，要么用于进水，要么用于出水。
所有安排完毕以后，所有用于进水的工作水管的进水量之和应当等于所有用于出水的工作水管的出水量之和。
请你计算，一共可以制定出多少种不同的水管工作方案。

注意，（1
 号水管进水、2
 号水管出水）和（1
 号水管出水、2
 号水管进水）应当视为两种不同的方案，虽然它们用到的工作水管相同，但是水管的具体安排（进水或出水）不同。

输入格式
第一行包含整数 n
。

第二行包含 n
 个整数 a1,a2,…,an
。

输出格式
一个整数，表示可以制定出的不同方案的总数量对 109+7
 取模后的结果。

数据范围
前 3
 个测试点满足 1≤n≤10
。
所有测试点满足 1≤n≤1000
，1≤ai≤1000
，∑i=1nai≤10000
。

输入样例：
4
1 1 1 1
输出样例：
12
*/
int main()
{
    std::cout << "Hello World!\n";
}

 